package Window;

import Controladores.ControladorMesa;
import Controladores.ControladorJanela;

import java.io.IOException;


public class Main {

    private static ControladorMesa m_mesaCtrl;
    private static ControladorJanela m_janelaCtrl;

    //variável com o id das cartas do baralho
    private static int[] m_baralho;

    //variáveeis que conterão os ids das cartas dos jogadores
    private static int[] m_jogoJ0;
    private static int[] m_jogoJ1;
    private static int[] m_jogoJ2;
    private static int[] m_jogoJ3;

    public static void main(String[] args) throws IOException {
        // TODO code application logic here

        //cria Mesa
        m_mesaCtrl = ControladorMesa.getInstance();
        
        //cria Janela
        m_janelaCtrl = ControladorJanela.getInstance();

        //inicia Mesa
        m_mesaCtrl.iniciarMesa();

        //inicia Janela   
        m_janelaCtrl.getJanela().iniciajanela();

        //aqui existirá um loop, o de partidas
        //devemos embaralhar e distribuir cartas em cada partida
        //poderá existir até sete partidas
        //então o loop é de até sete
        m_mesaCtrl.iniciarPartida();

        m_mesaCtrl.embaralhar();

        //id das cartas do baralho
        m_baralho = m_mesaCtrl.getIdBaralho();

        m_mesaCtrl.distribuirCartas();

        // ids das cartas dos jogadores
        m_jogoJ0 = m_mesaCtrl.getIdJogoJ0();
        m_jogoJ1 = m_mesaCtrl.getIdJogoJ1();
        m_jogoJ2 = m_mesaCtrl.getIdJogoJ2();
        m_jogoJ3 = m_mesaCtrl.getIdJogoJ3();

        m_janelaCtrl.distribuirCartas(m_jogoJ0);


        //aqui, dentro do loop acima, existirá um outro loop,
        //o de rodadas, cada partida tem 10 rodadas
        //então um loop até 10

        boolean valida = false;

        for (int i=0; i<10; i++){           
            m_mesaCtrl.iniciaRodada();

            //cada rodada tem 4 cartas e 4 jogadores
            //cada jogador joga 1 carta por rodada
            for (int j=0; j<4; j++){

                while(valida == false){

                    int idCarta = m_janelaCtrl.jogaCarta(m_jogoJ0);

                    //retorna true ou False
                    valida = m_mesaCtrl.jogaRodada(j,idCarta);
                    if (valida){
                        m_janelaCtrl.centralizaCarta(idCarta);
                    }else{
                        //Enviar msg para o usuario
                    }
                }
                valida = false;
            }
            m_mesaCtrl.venceRodada();
            m_mesaCtrl.salvaRodada(i);
        }
        //m_mesaCtrl.vencePartida();
    }
}
